package com.jzo2o.customer.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jzo2o.common.model.PageResult;
import com.jzo2o.customer.model.domain.WorkerCertification;
import com.jzo2o.customer.model.dto.WorkerCertificationUpdateDTO;
import com.jzo2o.customer.model.dto.request.CertificationAuditReqDTO;
import com.jzo2o.customer.model.dto.request.WorkerCertificationAuditAddReqDTO;
import com.jzo2o.customer.model.dto.request.WorkerCertificationAuditPageQueryReqDTO;
import com.jzo2o.customer.model.dto.response.WorkerCertificationAuditResDTO;

/**
 * <p>
 * 服务人员认证信息表 服务类
 * </p>
 *
 * @author itcast
 * @since 2023-09-06
 */
public interface IWorkerCertificationService extends IService<WorkerCertification> {



    /**
     * 根据服务人员id更新
     *
     * @param workerCertificationUpdateDTO 服务人员认证更新模型
     */
    void updateById(WorkerCertificationUpdateDTO workerCertificationUpdateDTO);

    /**
     * 服务人员提交认证
     *
     * @param workerCertificationAuditAddReqDTO 服务人员认证审核模型
     */
    void workerCertificationAuditAdd(WorkerCertificationAuditAddReqDTO workerCertificationAuditAddReqDTO);

    /**
     * 查询最新的驳回原因
     *
     * @return 驳回原因
     */
    String checkRejectReason();

    /**
     * 服务人员认证分页查询
     *
     * @param workerCertificationAuditPageQueryReqDTO 服务人员认证分页查询模型
     * @return 服务人员认证分页查询结果
     */
    PageResult<WorkerCertificationAuditResDTO> pageQuery(WorkerCertificationAuditPageQueryReqDTO workerCertificationAuditPageQueryReqDTO);

    /**
     * 服务人员认证审核
     *
     * @param id 服务人员id
     * @param certificationAuditReqDTO 服务人员认证审核模型
     */
    void workerCertificationAudit(Long id, CertificationAuditReqDTO certificationAuditReqDTO);
}
